<!-- 待提货列表 -->
<template>
  <div
    class="wait_delivery_list"
    v-if="!appStore.isPhone">
    <SearchCard
        ref="searchCardRef"
        :searchTemplate="searchTemplate"
        :more="false"
        @reset="getList"
        @search="(data) => getList(data)" />
    <el-card class="table_card">
      <Table
        :data="tableData"
        v-loading="tableLoading"
        :height="height">
        <el-table-column
          prop="baseCapitalWarehouseName"
          label="资金仓库名称"
          min-width="120"
          :resizable="false"
        />
        <el-table-column
          prop="goodsName"
          label="商品名称"
          min-width="120"
          :resizable="false"
        />
        <el-table-column
          prop="buyTon"
          label="购买吨数"
          min-width="100"
          :resizable="false"
        />
        <el-table-column
          prop="pickTon"
          label="已提货吨数"
          min-width="100"
          :resizable="false"
        />
        <el-table-column
          prop="driverName"
          label="司机名字"
          min-width="120"
          :resizable="false"
        />
        <el-table-column
          prop="driverPhoneNumber"
          label="司机电话"
          min-width="120"
          :resizable="false"
        />
        <el-table-column
          prop="carNumber"
          label="车牌号"
          min-width="100"
          :resizable="false" />
        <el-table-column
          prop="driverIdCard"
          label="司机身份证号"
          min-width="160"
          :resizable="false" />
        <el-table-column
          prop="createTime"
          label="创建时间"
          min-width="220"
          :resizable="false">
          <template #default="scope">
            {{ formatDateTime(scope.row.createTime) }}
          </template>
        </el-table-column>
        <el-table-column
          label="操作"
          fixed="right"
          min-width="100"
          :resizable="false">
          <template #default="scope">
            <el-button
              type="warning"
              v-permission="validateButtonPermission(route, 5)"
              @click="editEvent(scope.row)">
              提货
            </el-button>
          </template>
        </el-table-column>
      </Table>
      <Pagination
        :pageNum="pageNum"
        :pageSize="pageSize"
        :total="total"
        @handle-size-change="(val) => pageSize = val"
        @handle-current-change="(val) => pageNum = val" />
    </el-card>
    <!-- 查看 -->
    <!-- <View
      ref="viewRef"
      :rowData="rowData" /> -->
    <!-- 新增修改 -->
    <Edit
      ref="editRef"
      :rowData="rowData"
      @save="save" />
  </div>
  <!-- 手机端页面 -->
  <h5Index v-else></h5Index>
</template>

<script setup>
import { ref, onMounted, watch  } from "vue";
import Pagination from "@/components/Pagination.vue"
import Table from "@/components/Table.vue"
// import ApiBaseWareHouse from "@/api/modules/base-ware-house"
import ApiLogisticsRecord from "@/api/modules/logistics-record"
// import ApiTrainRepertory from "@/api/modules/train-repertory"
// import ApiCapitalWareHouse from "@/api/modules/capital-ware-house"
import { useTable } from "@/hooks/useTable"
// import View from "./component/View.vue"
import Edit from "./component/edit.vue"
// import message from "@/common/element-plus/message";
import config from "@/common/element-plus/config";
import app from "@/common/config/app";
import { validateButtonPermission } from "@/common/utils/validate";
import { useRoute } from "vue-router"
import { useAppStore } from "@/stores/app"
import { storeToRefs } from "pinia";
import { formatDateTime,formatDate } from "@/common/utils/date";
import h5Index from "./h5Index.vue";
import SearchCard from "@/components/SearchCard.vue"


const route = useRoute()
// 查询表单
const formData = ref({})
// 查看组件实例
// const viewRef = ref()
// 新增修改组件实例
const editRef = ref()
// 表格每行数据
const rowData = ref({})
// 表格高度(固定表头)
const height = ref(0)
// 查询卡片实例
const searchCardRef = ref()
// 资金仓库下拉框
const warehouseSimpleNameList = ref([]);
// 商品下拉框
const goodsSimpleNameList = ref([]);

const selectTime = ref([]);

// 查询模板
const searchTemplate = ref([
  {
    label: "资金仓库名称",
    type: "simpleSelect",
    placeholder: "资金仓库名称",
    interfaceUrl: "baseCapitalWarehouse",
    value: "baseCapitalWarehouseId",
    isClosed: false,
  },
  {
    label: "商品名称",
    type: "input",
    placeholder: "请输入商品名称",
    value: "goodsName",
    isClosed: false,
  },
  {
    label: "创建日期",
    type: "daterange",
    value: "selectTime",
    isClosed: false,
  },
]);

const { tableMethods, tableState, pagination } = useTable({
  fetchDataApi: async (data) => {
    data={...data,isFinishPick: false,isEnable:true}
    const { pageSize, pageNum } = pagination
    const res = await ApiLogisticsRecord.selectPage(data, {
      pageNum: pageNum.value,
      pageSize: pageSize.value,
    })
    return {
      list: res.data.records,
      total: res.data.total
    }
  }
})
const { getList } = tableMethods
const { pageSize, pageNum } = pagination
const { total, tableLoading, tableData } = tableState

// 监听时间选择
watch(() => selectTime.value, (newVal) => {
  if (newVal) {
    if (Array.isArray(newVal)&&newVal.length===2){
      formData.value.startDate = newVal[0];
      formData.value.endDate = newVal[1];
    } else {
      formData.value.startDate='';
      formData.value.endDate='';
    }
  }
}, { immediate: true })

//获取资金仓库简称列表
const getWarehouseSimpleNameList = async () => {
  const data = await ApiLogisticsRecord.getSimpleNameList("/baseCapitalWarehouse/")
  warehouseSimpleNameList.value = data.data
}
getWarehouseSimpleNameList()

//获取商品简称列表
const getGoodsSimpleNameList = async () => {
  const data = await ApiLogisticsRecord.getSimpleNameList("/baseRiceBarnGoods/")
  goodsSimpleNameList.value = data.data
}
getGoodsSimpleNameList();
// 重置
const reset = () => {
  formData.value = {}
  selectTime.value=""
  getList()
}

// 提货
const editEvent = (row) => {
  editRef.value.visibility = true
  rowData.value = Object.assign({}, row)
}
// 保存后回调
// const save = async () => {
//   editRef.value.visibility = false
//   message.success()
//   await getList()
// }

// 监听查询卡片大小变化
const resizeObserver = new ResizeObserver(entries => {
  for (const entry of entries) {
    if (contentFullScreen.value) {
      height.value = (window.innerHeight - app.otherHeight - app.tagHeight - entry.contentRect.height) + "px"
    } else {
      height.value = (window.innerHeight - app.otherHeight - app.tagHeight - app.headerHeight - entry.contentRect.height) + "px"
    }
  }
})

const appStore = useAppStore()

// 保持响应式
const { contentFullScreen } = storeToRefs(appStore)

onMounted(() => {
  if (appStore.isPhone) return
  resizeObserver.observe(searchCardRef.value.$el)
})
</script>

<style lang="scss" scoped>
.wait_delivery_list {
  .search_card {
    margin-bottom: 4px;

    :deep(.el-card__body) {
      padding: 10px;
      display: flex;
      justify-content: space-between;
    }

    :deep(.el-form-item__label) {
      min-width: 80px;
    }

    .el-button {
      margin: 5px 10px 5px 0;
    }

    .query_button {
      margin-left: 100px;
    }

    .el-form-item {
      margin-right: 10px;
      padding: 5px 0;
    }
  }

  .table_card {
    :deep(.el-card__body) {
      padding: 0;
    }
  }

  .right-btn{
    display: flex;
    .expanded{
      user-select: none;
      margin-right: 10px;
      text-align: right;
      color:#e6a23c;
      width: 42px;
      margin-top: 5px;

      span{
        font-size: 14px;
      }
    }
    .expanded:hover{
      cursor: pointer;
    }
  }
}
:deep(.el-dialog__body){
  height: 80vh !important;
}
:deep(.cell){
  text-align: center;
}
</style>
